package cn.hinglo.activemq.plugin;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * @createTime: 2018/12/21
 * @author: HingLo
 * @description: 类工具
 */
public class ClassKit {
    public static String classpath = ClassKit.class.getResource("/").getPath();


    public static List<String> getScanPackageClassName(String scan) {
        scan = scan.replace(".", File.separator);
        String searchPath = classpath + scan;
        List<String> list = new ArrayList<>();
        doPath(new File(searchPath), list);
        return list;
    }


    public static void doPath(File file, List<String> list) {
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            assert files != null;
            for (File f1 : files) {
                doPath(f1, list);
            }
        } else {//标准文件
            //标准文件我们就判断是否是class文件
            if (file.getName().endsWith(".class")) {
                //如果是class文件我们就放入我们的集合中。
                String path = file.getPath();
                path = path.replace(classpath.replace("/", "\\").replaceFirst("\\\\", ""), "").replace("\\", ".").replace(".class", "");
                list.add(path);
            }
        }
    }

}
